import { defineStore } from 'pinia'

const nowMonth = new Date().getMonth() + 1

export const headersStore = defineStore('headers', {
  state: () => {
    return {
      language_id: 'zh-cn', // 语言编码
      type_id: '', // 类型(1：全球业务 2：全球供应链 3：全球财务 4：直销商 5：人力)
      year: '', // 年份
      month:
        nowMonth > 10 ? nowMonth.toString() : '0' + nowMonth.toString() || '00', // 月份(参数值00查询全年)
      authority_id: '', // 权限ID
      distributor_key: '', // 经销商key ,用于经销商的任何接口的鉴权
      scope_code: '', // 国家简码以及区域编码以及城市简码
      point_code: '', // 点位编码
      every_code: '', // 区分全球区域对比或国家对比  0各个区域，1 各个国家 默认空
      coefficient_addition: 1, // 加成系数(彩蛋)
    }
  },
  actions: {
    // 语言编码
    setLanguageId(language_id: string) {
      this.language_id = language_id
    },
    // 类型(1:全球业务 2:全球供应链 3:全球财务4:直销商)
    setTypeId(type_id: string) {
      this.type_id = type_id
    },
    // 年份
    setYear(year: string) {
      this.year = year
    },
    // 月份(参数值00查询全年)
    setMonth(month: string) {
      this.month = month
    },
    // 权限ID
    setAuthorityId(authority_id: string) {
      this.authority_id = authority_id
    },
    // 经销商key ,用于经销商的任何接口的鉴权
    setDistributorKey(distributor_key: string) {
      // 两次url
      this.distributor_key = decodeURIComponent(
        decodeURIComponent(distributor_key)
      )
    },
    // 设置国家或区域编码
    setScopeCode(scope_code: string) {
      this.scope_code = scope_code
    },
    // 设置点位编码
    setPointCode(point_code: string) {
      this.point_code = point_code
    },
    // 设置加成系数
    setAddition(coefficient_addition: any) {
      this.coefficient_addition = coefficient_addition
    },
    // 设置区分全球区域对比或国家对比  0各个区域，1 各个国家 2总部各部门 默认空
    setEveryCode(every_code: string) {
      this.every_code = every_code
    },

    clear() {
      this.language_id = 'zh-cn'
      this.type_id = ''
      this.year = ''
      this.month =
        nowMonth > 10 ? nowMonth.toString() : '0' + nowMonth.toString() || '00' // 月份(参数值00查询全年)
      this.authority_id = ''
      this.distributor_key = ''
      this.scope_code = ''
      this.point_code = ''
      this.every_code = ''
      this.coefficient_addition = 1
    },
  },
  // 持久化(TODO以后解除下面的注释)
  persist: {
    enabled: true,
  },
})

// 如果是开发环境，可以在控制台直接访问headersStore，方便调试。
if (process.env.NODE_ENV === 'development') {
  window['_HEADER_STORE'] = headersStore
}
